package com.tange.ai.core.sample

import android.app.Application
import android.widget.Toast
import com.tange.core.access.token.Authentication
import com.tange.core.backend.service.ep.Env
import com.tange.core.backend.service.interceptor.HttpLoggingInterceptor
import com.tange.core.initialization.Configurations
import com.tange.core.initialization.TGCore
import com.tange.core.message.distribution.PersistentConnectionMessage
import com.tange.module.core.wifi.scan.AccessPointScanImpl
import com.tange.module.core.wifi.scan.WiFiScanManager
import com.tange.module.qrcode.scan.QrCodeBitmap
import com.tange.module.qrcode.scan.QrCodeBitmapImpl
import com.tange.module.qrcode.scan.QrCodeRecognitionFactoryImpl
import com.tange.module.qrcode.scan.QrCodeRecognitionHub


class App : Application() {

    override fun onCreate() {
        super.onCreate()

        val configurations = Configurations.Builder(this)
            .setAppId(BuildConfig.TG_APP_ID) // 如需修改APP_ID，修改工程根目录 gradle.properties 相应字段即可
            .enableDebugMode(BuildConfig.DEBUG) // 仅在Debug包时，启用调试模式
            .build()

        TGCore.initialize(configurations)

        // 设置AP扫描具体实现
        WiFiScanManager.setWiFiScan(AccessPointScanImpl())
        // 设置二维码扫描与识别能力的具体实现
        QrCodeRecognitionHub.register(QrCodeRecognitionFactoryImpl())
        QrCodeBitmap.setQrCodeBitmapImpl(QrCodeBitmapImpl())

        // 全局监听用户令牌失效的状态
        Authentication.observeOnVerificationFailed {
            Toast.makeText(this, "Token失效，请刷新！", Toast.LENGTH_LONG).show()
        }

        PersistentConnectionMessage.observe {
            Toast.makeText(this, "收到长连接消息：\n$it", Toast.LENGTH_LONG).show()
        }
    }
}